<!-- 底部菜单 -->
<template>
  <div class="foot-container">
    <van-tabbar v-model="currentActive">
      <van-tabbar-item icon="chat-o"
                       :badge="messageBadge"
                       replace
                       to="/message">
        消息
      </van-tabbar-item>

      <van-tabbar-item icon="friends-o"
                       :dot="showDot"
                       replace
                       to="/contact">
        联系人
      </van-tabbar-item>

      <van-tabbar-item icon="fire-o"
                       color="#ee0a24"
                       replace
                       to="/square">
        广场
      </van-tabbar-item>

      <van-tabbar-item icon="cluster-o"
                       :badge="meetingBadge"
                       replace
                       to="/meeting">
        会议
      </van-tabbar-item>

      <van-tabbar-item icon="user-o"
                       replace
                       to="/user"> 我的 </van-tabbar-item>
    </van-tabbar>
  </div>
</template>

<script>
//这里可以导入其他文件（比如：组件，工具js，第三方插件js，json文件，图片文件等等）
//例如：import 《组件名称》 from '《组件路径》';

export default {
  name: 'Foot',
  //import引入的组件需要注入到对象中才能使用
  components: {},
  props: {
    active: {
      type: Number,
      default: 0,
    },
  },
  data () {
    //这里存放数据
    return {
      currentActive: this.active,
      messageBadge: '',
      meetingBadge: '',
      showDot: false,
    };
  },
  //方法集合
  methods: {
    // 初始化底部tabbar的状态，然后将获取到的数据存入
    init () {
      this.$http.get(this.$reqPrefix.im + "/im/pending-message/overview", {}).then(res => {
        // 给组件赋值
        this.messageBadge = res.data.pendingMessageCount > 99 ? "99+" : res.data.pendingMessageCount === 0 ? '' : res.data.pendingMessageCount;
        this.meetingBadge = res.data.pendingMeetingCount > 99 ? "99+" : res.data.pendingMeetingCount === 0 ? '' : res.data.pendingMeetingCount;
        // 判断真假
        this.showDot = res.data.pendingContactCount ? true : false;
        // 将得到的值进行设置回显，并存储起来
        this.$store.commit(
          "setImPendingOverview",
          {
            pendingMessageCount: this.messageBadge,
            pendingContactCount: res.data.pendingContactCount,
            pendingMeetingCount: this.meetingBadge,
          },
        );
        // 在全局主键中进行监听处理
        this.$emitter.on('tabbar-state-event', this.tabbarStateEvent);


      }).catch(err => {
        Toast.fail(err.data.message);
      });
    },
    // 改变tabbar的状态
    tabbarStateEvent () {
      var { pendingMessageCount, pendingContactCount, pendingMeetingCount } = this.$store.state.imPendingOverview;
      this.messageBadge = pendingMessageCount;
      this.meetingBadge = pendingMeetingCount;
      this.showDot = pendingContactCount ? true : false;
    }
  },
  //监听属性 类似于data概念
  computed: {},
  //监控data中的数据变化
  watch: {},
  //生命周期 - 创建完成（可以访问当前this实例）
  created () {
    this.init();
  },
  //生命周期 - 挂载完成（可以访问DOM元素）
  mounted () { },
  //生命周期 - 创建之前
  beforeCreate () { },
  //生命周期 - 挂载之前
  beforeMount () { },
  //生命周期 - 更新之前
  beforeUpdate () { },
  //生命周期 - 更新之后
  updated () { },
  //生命周期 - 销毁之前
  beforeUnmount () { },
  //生命周期 - 销毁完成
  unmounted () {
    this.$emitter.off('tabbar-state-event', this.tabbarStateEvent);
  },
  //如果页面有keep-alive缓存功能，这个函数会触发
  activated () { },
};
</script>
<style lang="less" scoped>
//@import url(); 引入公共css类
</style>
